package dao

import "time"

// DataCollectionCommand 数据采集指令配置
type DataCollectionCommand struct {
	Name     string            `json:"name"`     // 指令名称
	Command  string            `json:"command"`  // 指令内容
	Interval time.Duration     `json:"interval"` // 采集间隔
	Enabled  bool              `json:"enabled"`  // 是否启用
	Timeout  time.Duration     `json:"timeout"`  // 指令超时时间
	Retry    int               `json:"retry"`    // 重试次数
	Sort     int               `json:"sort"`     // 指令排序，数值越小越先执行
	Params   map[string]string `json:"params"`   // 指令参数
}

// DataCollectionConfig 数据采集配置
type DataCollectionConfig struct {
	Enabled       bool                             `json:"enabled"`         // 是否启用数据采集
	Commands      map[string]DataCollectionCommand `json:"commands"`        // 指令集合，key为指令名称
	MaxBufferSize int                              `json:"max_buffer_size"` // 最大缓存大小
	Interval      time.Duration                    `json:"interval"`        // 采集间隔
}

type ChanDataCollectionCommand struct {
	Iccid   string
	Command DataCollectionCommand
}
type ChanDataCollectionConfig struct {
	Iccid    string               `json:"iccid"`
	DeviceId string               `json:"deviceId"`
	Cfg      DataCollectionConfig `json:"cfg"`
}
type ChanCmdSend struct {
	Iccid string
	Cmd   []byte
}
